package com.hlg.xboot.utils;

import com.hlg.xboot.config.AppConfig;
import com.hlg.xboot.constants.CacheConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * <p>Description: 短信发送辅助接口</p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: 中视数讯</p>
 * <p>Site: www.digi-zones.com</p>
 * <p>myblog: http://blog.csdn.net/xyang81</p>
 *
 * @author 杨信
 * @version 1.0
 * @date 2016/11/2
 */
@Component
public class SMSHelper {

    @Autowired
    protected RedisTemplate<String,Object> redisTemplate;
    @Autowired
    private AppConfig appConfig;

    /**
     * 保存验证码到缓存中
     * <p>有效期默认5分钟</p>
     * @param phone 手机号
     * @param verifyCode 验证码
     */
    public void saveSmsVerifyCode(String phone, String verifyCode) {
        redisTemplate.boundValueOps(CacheConstants.SMS_CACHE_PREFIX + phone).set(verifyCode);
        redisTemplate.boundValueOps(CacheConstants.SMS_CACHE_PREFIX + phone).expire(appConfig.getAliyun().getSms().getExpire(), TimeUnit.MINUTES);
    }

    /**
     * 获取验证码
     * @param phone 手机号
     * @return 成功返回有效期内的验证码，失败返回null
     */
    public String getSmsVerifyCode(String phone) {
        return (String) redisTemplate.boundValueOps(CacheConstants.SMS_CACHE_PREFIX + phone).get();
    }

}
